package com.ankicoo.file.service;

import com.aliyun.oss.model.OSSObject;
import org.springframework.web.multipart.MultipartFile;

import java.io.InputStream;

/**
 * Description: OSS 文件处理
 *
 * @author : QCYANG
 * @date : 2021/7/15 18:03
 */
public interface OssFileService {

    /**
     * 文件上传
     * @param file 表单提交文件
     */
    void upload(MultipartFile file);

    /**
     * 文件名 + 文件流 上传文件
     * @param fileName 文件完整路径加名称
     * @param input 文件流
     */
    void upload(String fileName, InputStream input);

    /**
     *  获取文件流
     * @param filePath 文件完整路径加名称
     * @return 流
     */
    InputStream openInputStream(String filePath);

    /**
     * 下载文件
     * @param fileName 文件完整路径加名称
     * @return 文件oss对象
     */
    OSSObject download(String fileName);

    /**
     * 删除文件
     * @param fileName 文件完整路径加名称
     */
    void delete(String fileName);
}
